/*
 * Copyright (c) 2025, 大连理工大学 (Dalian University of Technology)
 *
 * Licensed under the Mulan PSL v2.
 * You can use this file according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of the License at
 *
 *     http://license.coscl.org.cn/MulanPSL2
 *
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. SEE THE MULAN PSL v2
 * FOR MORE DETAILS.
 */

// clang-format off
#pragma once
#include "DataStructure/Common/SGNamespace.h"

#define NS_DBMANAGER namespace DBManager {
#define NS_SERVICE namespace Service {
#define NS_HDF5 namespace HDF5 {
#define NS_POST namespace Post {

// SG::DBManager
#define SG_DBMANAGER_NAMESPACE_OPEN NS_SG NS_DBMANAGER
#define SG_DBMANAGER_NAMESPACE_CLOSE NS_CLOSE NS_CLOSE

// SG::DBManager::Service
#define SG_DBMANAGER_SERVICE_NAMESPACE_OPEN NS_SG NS_DBMANAGER NS_SERVICE
#define SG_DBMANAGER_SERVICE_NAMESPACE_CLOSE NS_CLOSE NS_CLOSE NS_CLOSE

// SG::DBManager::HDF5
#define SG_DBMANAGER_HDF5_NAMESPACE_OPEN NS_SG NS_DBMANAGER NS_HDF5
#define SG_DBMANAGER_HDF5_NAMESPACE_CLOSE NS_CLOSE NS_CLOSE NS_CLOSE

// SG::DBManager::Post
#define SG_DBMANAGER_POST_NAMESPACE_OPEN NS_SG NS_DBMANAGER NS_POST
#define SG_DBMANAGER_POST_NAMESPACE_CLOSE NS_CLOSE NS_CLOSE NS_CLOSE
